package com.barbarosso.utils.array {

	 /**
         * ICollection
         */
        public interface ICollection
        {
                function getItemByIndex(index:int):Object;
                function getItemByChildProperty(childProperty:String, childValue:*):Object;
                function getItemsByPropertyValue(childProperty:String, childValue:*):ArrayCollection;
                function getFirstItem():Object;
                function getLastItem():Object;
                function getCollectionRange(startIndex:int,endIndex:int):ArrayCollection;

                function addItem(item:Object):Boolean;
                function addItemAtIndex(index:int,item:Object):Boolean;

                function removeItem(item:Object):Boolean;
                function removeItemAtIndex(index:int):Boolean;
                function removeAllItems():void;
                function removeItemByChildProperty(property:String,value:*):Boolean;

                function hasItemAtIndex(index:int):Boolean;
                function hasItem(item:Object):Boolean;
        }
}
